1. Field of the Invention
The present invention relates to computer testing and, more particularly, testing input to computer components such as graphical user interfaces (GUI).
2. Description of the Background Art
Test script is computer language that is input to, and executed by, an automated test executor. The automated test executor simulates user input to a computer component such as a graphical user interfaces (GUI), computer hardware, or a computer software of a target computer. The automated test executor tests the response in one or more network locations to simulated inputs to the computer component. Such simulated inputs, in e.g. a GUI, include clicking a mouse, moving a mouse, or typing a prescribed text string. GUI's are considered one embodiment of a front end of a computer that includes the components that make up the screen that forms the application. Since computer components such as GUIs are becoming more complex as to be able to provide an almost unlimited number of user interface and computer operation scenarios, the complexity of the operation of the automated test executors that test the computer component is also increasing. Testing the computer component for desired operation can almost be as difficult and time consuming as writing the software for the computer component.
Test data input is manually “recorded”. For a GUI, a human tester manually enters test data in the form of test script that, upon execution in the automated test executor, simulates input to the computer component(s) under test. To test computer components such as GUIs, the tester typically manually inputs data, manually moves mouse pointer, simulates mouse clicking, and manually captures the results of the GUI from the user inputs. For tests to be re-executed multiple times, e.g. regression tests, the automated test executor may provide a special “record” feature to be used before test execution. The automated test executor then executes the generated test script, and the results output from the automated test executor are reviewed, recorded, and/or compared to the desired operation of the target computer. The automated test executor automatically simulates such actions as manipulating mouse pointers or keyboard closures, in response to the input test script to simulate user input. The response throughout the network to the test script executed by the test executor can be captured for later replay and review. The recorded results from the automated test executor are then passed through an analysis engine. The analysis engine is typically manually performed to determine which test executions were successful. The analysis engine also tabulates the recorded results, such as a pass or fail status for each executed test.
It is also possible to include analysis functions within the test script code to provide immediate status determination for a test case. Failed test cases are typically reviewed manually with the human readable component of the test case output, and the recorded results are examined manually for determination of the scope of the defect. Specific test cases are re-executed through the automated test executor, if necessary, either automatically or manually to consider the operation of the automated test executor. A description of the defect may then be entered into a trouble tracking system, along with a test case identifier so coders or programmers can modify the operation, e.g. software code, of the GUI to correct the defect.
There is the need to allow testers to concentrate their efforts on devising specific tests rather than on the details of the test script generation or modification within the scope of testing and the use of automated test executors for computer components such as GUI, computer software, and/or computer hardware. The test script generation and modification themselves utilize code similar to programming code, i.e. an object oriented code. Thus there is a need in the art for a system that can convert stimulus values provided by a tester, and a model of the computer component object behavior to the test script that can be executed by automated test executors. The behavioral output of the system to simulated input to the computer component under test can be compared to expected results.